<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>Class Hierarchy</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th bgcolor="#70b0f0" class="navbar-select"
          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://openttd-python.googlecode.com">OpenTTD-Python</a></th>
          </tr></table></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">&nbsp;</td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="class-tree.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<center><b>
 [ <a href="module-tree.html">Module Hierarchy</a>
 | <a href="class-tree.html">Class Hierarchy</a> ]
</b></center><br />
<h1 class="epydoc">Class Hierarchy</h1>
<ul class="nomargin-top">
    <li> <strong class="uidlink">SocketServer.BaseRequestHandler</strong>:
      <em class="summary">Base class for request handler classes.</em>
    <ul>
    <li> <strong class="uidlink">SocketServer.StreamRequestHandler</strong>:
      <em class="summary">Define self.rfile and self.wfile for stream sockets.</em>
    <ul>
    <li> <strong class="uidlink">BaseHTTPServer.BaseHTTPRequestHandler</strong>:
      <em class="summary">HTTP request handler base class.</em>
    <ul>
    <li> <strong class="uidlink"><a href="plugins.webserver.MyHandler-class.html">plugins.webserver.MyHandler</a></strong>
    </li>
    <li> <strong class="uidlink"><a href="plugins.stats.MyHandler-class.html">plugins.stats.MyHandler</a></strong>
    </li>
    <li> <strong class="uidlink"><a href="webserver.MyHandler-class.html">webserver.MyHandler</a></strong>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink">SocketServer.BaseServer</strong>:
      <em class="summary">Base class for server classes.</em>
    <ul>
    <li> <strong class="uidlink">SocketServer.TCPServer</strong>:
      <em class="summary">Base class for various socket-based server classes.</em>
    <ul>
    <li> <strong class="uidlink">BaseHTTPServer.HTTPServer</strong>
    <ul>
    <li> <strong class="uidlink"><a href="plugins.webserver.WebserverThread-class.html">plugins.webserver.WebserverThread</a></strong>:
      <em class="summary">multithreaded webserver class for openttd-python using a seperate 
        class so it can be started multiple times do not merge with the 
        WebServer class, you'll make it a run-once webserver, because 
        threads can only be started once</em>
    </li>
    <li> <strong class="uidlink"><a href="plugins.stats.WebserverThread-class.html">plugins.stats.WebserverThread</a></strong>:
      <em class="summary">multithreaded webserver class for openttd-python using a seperate 
        class so it can be started multiple times do not merge with the 
        WebServer class, you'll make it a run-once webserver, because 
        threads can only be started once</em>
    </li>
    <li> <strong class="uidlink"><a href="webserver.myWebServer-class.html">webserver.myWebServer</a></strong>:
      <em class="summary">multithreaded webserver class for openttd-python</em>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="openttd.savegame.CDataPacket-class.html">openttd.savegame.CDataPacket</a></strong>
    </li>
    <li> <strong class="uidlink"><a href="openttd.client.DataPacket-class.html">openttd.client.DataPacket</a></strong>
    </li>
    <li> <strong class="uidlink"><a href="ottd_client_event.Event-class.html">ottd_client_event.Event</a></strong>:
      <em class="summary">Base event class</em>
    <ul>
    <li> <strong class="uidlink"><a href="ottd_client_event.IRCChat-class.html">ottd_client_event.IRCChat</a></strong>:
      <em class="summary">event generated by IRC chat</em>
    <ul>
    <li> <strong class="uidlink"><a href="ottd_client_event.IRCPrivateChat-class.html">ottd_client_event.IRCPrivateChat</a></strong>:
      <em class="summary">event is generated by IRC private chat</em>
    <ul>
    <li> <strong class="uidlink"><a href="ottd_client_event.IRCPrivateActionChat-class.html">ottd_client_event.IRCPrivateActionChat</a></strong>:
      <em class="summary">this event is generated by irc private /me messages</em>
    </li>
    <li> <strong class="uidlink"><a href="ottd_client_event.IRCPrivateChatResponse-class.html">ottd_client_event.IRCPrivateChatResponse</a></strong>
    <ul>
    <li> <strong class="uidlink"><a href="ottd_client_event.IRCPrivateNoticeChatResponse-class.html">ottd_client_event.IRCPrivateNoticeChatResponse</a></strong>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="ottd_client_event.IRCPrivateNoticeChat-class.html">ottd_client_event.IRCPrivateNoticeChat</a></strong>:
      <em class="summary">event is generated by IRC notice chat</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="ottd_client_event.IRCPublicChat-class.html">ottd_client_event.IRCPublicChat</a></strong>:
      <em class="summary">event is generated by IRC channel chat</em>
    <ul>
    <li> <strong class="uidlink"><a href="ottd_client_event.IRCPublicActionChat-class.html">ottd_client_event.IRCPublicActionChat</a></strong>:
      <em class="summary">this event is generated by irc /me messages</em>
    </li>
    <li> <strong class="uidlink"><a href="ottd_client_event.IRCPublicChatResponse-class.html">ottd_client_event.IRCPublicChatResponse</a></strong>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="ottd_client_event.IngameChat-class.html">ottd_client_event.IngameChat</a></strong>:
      <em class="summary">this event is generated by ingame chat</em>
    <ul>
    <li> <strong class="uidlink"><a href="ottd_client_event.Broadcast-class.html">ottd_client_event.Broadcast</a></strong>:
      <em class="summary">This event is generated by the bot itself when it needs to 
        broadcast something</em>
    <ul>
    <li> <strong class="uidlink"><a href="ottd_client_event.IRCToIngame-class.html">ottd_client_event.IRCToIngame</a></strong>:
      <em class="summary">this event is generated by internal messages from irc&quot;</em>
    </li>
    <li> <strong class="uidlink"><a href="ottd_client_event.IngameToIRC-class.html">ottd_client_event.IngameToIRC</a></strong>:
      <em class="summary">this event is generated by join/quit messages</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="ottd_client_event.IngameChatResponse-class.html">ottd_client_event.IngameChatResponse</a></strong>:
      <em class="summary">The response to an IngameChatEvent</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="ottd_client_event.InternalCommand-class.html">ottd_client_event.InternalCommand</a></strong>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="openttd.grfdb.GrfDB-class.html">openttd.grfdb.GrfDB</a></strong>:
      <em class="summary">The GRF Database used for looking up names</em>
    </li>
    <li> <strong class="uidlink">rfc822.Message</strong>:
      <em class="summary">Represents a single RFC 2822-compliant message.</em>
    <ul>
    <li> <strong class="uidlink"><a href="mimetools.Message-class.html">mimetools.Message</a></strong>:
      <em class="summary">A derived class of rfc822.Message that knows about MIME headers and
        contains some hooks for decoding encoded and multipart messages.</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="openttd.savegame.OTTDSaveGameParser-class.html">openttd.savegame.OTTDSaveGameParser</a></strong>:
      <em class="summary">openttd-python class to parse openttd savegames</em>
    </li>
    <li> <strong class="uidlink">SocketServer.ThreadingMixIn</strong>:
      <em class="summary">Mix-in class to handle each request in a new thread.</em>
    <ul>
    <li> <strong class="uidlink"><a href="plugins.webserver.WebserverThread-class.html">plugins.webserver.WebserverThread</a></strong>:
      <em class="summary">multithreaded webserver class for openttd-python using a seperate 
        class so it can be started multiple times do not merge with the 
        WebServer class, you'll make it a run-once webserver, because 
        threads can only be started once</em>
    </li>
    <li> <strong class="uidlink"><a href="plugins.stats.WebserverThread-class.html">plugins.stats.WebserverThread</a></strong>:
      <em class="summary">multithreaded webserver class for openttd-python using a seperate 
        class so it can be started multiple times do not merge with the 
        WebServer class, you'll make it a run-once webserver, because 
        threads can only be started once</em>
    </li>
    <li> <strong class="uidlink"><a href="webserver.myWebServer-class.html">webserver.myWebServer</a></strong>:
      <em class="summary">multithreaded webserver class for openttd-python</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink">object</strong>:
      <em class="summary">The most base type</em>
    <ul>
    <li> <strong class="uidlink">exceptions.BaseException</strong>:
      <em class="summary">Common base class for all exceptions</em>
    <ul>
    <li> <strong class="uidlink">exceptions.Exception</strong>:
      <em class="summary">Common base class for all non-exit exceptions.</em>
    <ul>
    <li> <strong class="uidlink"><a href="openttd.savegame.LoadException-class.html">openttd.savegame.LoadException</a></strong>:
      <em class="summary">The exception raised by OTTDSaveGameParser when something goes 
        wrong</em>
    </li>
    <li> <strong class="uidlink"><a href="openttd._error.OpenTTDError-class.html">openttd._error.OpenTTDError</a></strong>
    <ul>
    <li> <strong class="uidlink"><a href="openttd._error.ConnectionError-class.html">openttd._error.ConnectionError</a></strong>
    </li>
    <li> <strong class="uidlink"><a href="openttd._error.ProtocolError-class.html">openttd._error.ProtocolError</a></strong>
    <ul>
    <li> <strong class="uidlink"><a href="openttd._error.UnexpectedResponse-class.html">openttd._error.UnexpectedResponse</a></strong>
    </li>
    <li> <strong class="uidlink"><a href="openttd._error.WrongVersion-class.html">openttd._error.WrongVersion</a></strong>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="sstruct.error-class.html">sstruct.error</a></strong>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="openttd.datastorageclass.DataStorageClass-class.html">openttd.datastorageclass.DataStorageClass</a></strong>
    </li>
    <li> <strong class="uidlink">json.encoder.JSONEncoder</strong>:
      <em class="summary">Extensible JSON &lt;http://json.org&gt; encoder for Python data 
        structures.</em>
    <ul>
    <li> <strong class="uidlink"><a href="plugins.webserver.DataStorageJSONEncoder-class.html">plugins.webserver.DataStorageJSONEncoder</a></strong>
    </li>
    <li> <strong class="uidlink"><a href="plugins.stats.DataStorageJSONEncoder-class.html">plugins.stats.DataStorageJSONEncoder</a></strong>
    </li>
    <li> <strong class="uidlink"><a href="webserver.DataStorageJSONEncoder-class.html">webserver.DataStorageJSONEncoder</a></strong>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="openttd.date.OpenTTDDate-class.html">openttd.date.OpenTTDDate</a></strong>:
      <em class="summary">Class that allows conversion between openttd dates and python dates</em>
    </li>
    <li> <strong class="uidlink"><a href="plugins.pluginclass.Plugin-class.html">plugins.pluginclass.Plugin</a></strong>:
      <em class="summary">The Plugin class, all plugins should be subclassed from this.</em>
    <ul>
    <li> <strong class="uidlink"><a href="plugins.rcon.RconPlugin-class.html">plugins.rcon.RconPlugin</a></strong>
    </li>
    <li> <strong class="uidlink"><a href="plugins.sample.Sample-class.html">plugins.sample.Sample</a></strong>:
      <em class="summary">A sample plugin, only for example</em>
    </li>
    <li> <strong class="uidlink"><a href="plugins.stats.StatsWriter-class.html">plugins.stats.StatsWriter</a></strong>
    </li>
    <li> <strong class="uidlink"><a href="plugins.webserver.StatsWriter-class.html">plugins.webserver.StatsWriter</a></strong>
    </li>
    <li> <strong class="uidlink"><a href="plugins.timewarning.TimeWarning-class.html">plugins.timewarning.TimeWarning</a></strong>
    </li>
    <li> <strong class="uidlink"><a href="plugins.stats.WebServer-class.html">plugins.stats.WebServer</a></strong>:
      <em class="summary">multithreaded webserver plugin</em>
    </li>
    <li> <strong class="uidlink"><a href="plugins.webserver.WebServer-class.html">plugins.webserver.WebServer</a></strong>:
      <em class="summary">multithreaded webserver plugin</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink">threading._Verbose</strong>
    <ul>
    <li> <strong class="uidlink">threading.Thread</strong>
    <ul>
    <li> <strong class="uidlink"><a href="openttd.client.Client-class.html">openttd.client.Client</a></strong>
    </li>
    <li> <strong class="uidlink"><a href="plugins.webserver.WebserverThread-class.html">plugins.webserver.WebserverThread</a></strong>:
      <em class="summary">multithreaded webserver class for openttd-python using a seperate 
        class so it can be started multiple times do not merge with the 
        WebServer class, you'll make it a run-once webserver, because 
        threads can only be started once</em>
    </li>
    <li> <strong class="uidlink"><a href="plugins.stats.WebserverThread-class.html">plugins.stats.WebserverThread</a></strong>:
      <em class="summary">multithreaded webserver class for openttd-python using a seperate 
        class so it can be started multiple times do not merge with the 
        WebServer class, you'll make it a run-once webserver, because 
        threads can only be started once</em>
    </li>
    <li> <strong class="uidlink"><a href="webserver.myWebServer-class.html">webserver.myWebServer</a></strong>:
      <em class="summary">multithreaded webserver class for openttd-python</em>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    </ul>
    </li>
</ul>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th bgcolor="#70b0f0" class="navbar-select"
          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://openttd-python.googlecode.com">OpenTTD-Python</a></th>
          </tr></table></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0.1 on Mon Oct 20 13:03:10 2008
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>
